<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    
  </style>
</head>
<body>
  
</body>
<script>

  // xxx的方法：功能，参数，返回值

  // const p = new Promise((resolve, reject)=>{
  //   resolve("hello");
  // })

  // const p2 = new Promise(function(a, b){
  //   b("p2的nononono")
  // });

  // const abc = p.then((res)=>{
  //   console.log(res);
  //   return p2
  // });

  // console.log(abc);

  // console.log(p2);

  // console.log(abc === p);

  // then的返回值：新的Promise实例
    // 1. then的回调函数没有返回值，新的没有结果的成功状态的Promise实例
    // 2. then的回调函数有返回值
      // 2.1 非promise实例，新的有结果的成功状态的Promise实例
        // 这个结果是返回的非promise实例数据（字符，数值，布尔，函数，对象等）
      // 2.2 新promise实例，就是这个新的promise实例

  // const p1 = new Promise(a=>{
  //   setTimeout(()=>{
  //     a("p1的ok");
  //   }, Math.random()*100);
  // })
  // const p2 = new Promise(a=>{
  //   setTimeout(()=>{
  //     a("p2的ok");
  //   }, Math.random()*100);
  // })

  // 回调地狱
  // p1.then(res=>{
  //   console.log(res)
  //   p2.then(res=>{
  //     console.log(res)
  //   })
  // })


  // p1.then(res=>{
  //   console.log(res)
  //   return p2
  // }).then(res=>{
  //   console.log("p2的成功的处理：", res)
  // })

  // then的链式调用语法：
  // p1.then(()=>p2).then(()=>p3).then(()=>p4).then()

  // then的链式调用 将 回调地狱的嵌套，解耦
    // 提升性能，加强可读性



</script>
</html>